<HTML>
<HEAD>
  <!-- Created with AOLpress/2.0 -->
  <!-- AP: Created on: 11-Dec-2000 -->
  <!-- AP: Last modified: 13-Jul-2009 -->
  <TITLE>The Hints Menu</TITLE>
  <LINK REL="icon" href="fftype16.png">
  <LINK REL="stylesheet" TYPE="text/css" HREF="FontForge.css">
</HEAD>
<BODY id="menued">
<P ALIGN=CENTER>
<IMG SRC="fontforge-banner-420.jpeg" WIDTH=420 HEIGHT=80>
<DIV class="menucontainer">
  <UL class="menubar">
    <LI class="menu">
      <A href="http://sourceforge.net/projects/fontforge/files/">Download</A>
      <UL>
	<LI>
	  <A href="http://sourceforge.net/projects/fontforge/files/fontforge-docs/"
	      >Documentation</A>
	<LI>
	  <A href="http://sourceforge.net/projects/fontforge/files/fontforge-source/"
	      >Source</A>
      </UL>
    <LI>
      <A HREF="overview.html#TOC">Introduction</A>
    <LI>
      <A href="editexample.html">Tutorial</A>
    <LI class="menu">
      <A href="fontview.html">Windows</A>
      <UL>
	<LI>
	  <A href="fontview.html" >Font</A>
	<LI>
	  <A href="charview.html" >Outline Glyph</A>
	<LI>
	  <SMALL><A href="charview.html#Debugging" >&nbsp; &nbsp;Debugging
	  TrueType</A></SMALL>
	<LI>
	  <SMALL><A href="multilayer.html" >&nbsp; &nbsp;Type3 Glyphs</A></SMALL>
	<LI>
	  <A href="bitmapview.html" >Bitmap Glyph</A>
	<LI>
	  <A href="metricsview.html" >Metrics</A>
      </UL>
    <LI class="menu">
      <A href="fontinfo.html">Dialogs 1</A>
      <UL>
	<LI>
	  <A href="fontinfo.html" >Font Information</A>
	<LI>
	  <SMALL><A href="histogram.html" >&nbsp; &nbsp;Histogram Dialog</A></SMALL>
	<LI>
	  <A href="charinfo.html" >Glyph Information</A>
	<LI>
	  <A href="getinfo.html" >Point, Reference Information</A>
	<LI>
	  <A href="multilayer.html#Layer" >Type3 Layer Information</A>
	<LI>
	  <A href="bdfinfo.html" >Bitmap Properties</A>
	<LI>
	  <A href="baseline.html" >Baseline Information</A>
	<LI>
	  <A HREF="justify.html">Justification Information</A>
	<LI>
	  <A href="math.html" >Math Information</A>
	<LI>
	  <A href="multiplemaster.html" >Multiple Master Information</A>
	<LI>
	    <HR>
	<LI>
	  <A href="lookups.html" >Lookups &amp; subtables</A>
	<LI>
	  <A href="metricsview.html#kernpair" >Kerning glyph pairs 1</A>
	<LI>
	  <A href="kernpairs.html" >Kerning glyph pairs 2</A>
	<LI>
	  <A href="metricsview.html#kernclass" >Kerning by classes</A>
	<LI>
	  <A href="anchorcontrol.html" >Anchor Control</A>
	<LI>
	  <A href="contextchain.html" >Contextual lookup dialog</A>
	<LI>
	  <A href="statemachine.html" >Apple State Machine dialog</A>
	<LI>
	  <A href="showatt.html" >Show Advanced Typography</A>
	<LI>
	    <HR>
	<LI>
	  <A href="problems.html" >Potential Problems dialog</A>
	<LI>
	  <A href="validation.html" >Font Validation dialog</A>
      </UL>
    <LI class="menu">
      <A href="generate.html">Dialogs 2</A>
      <UL>
	<LI>
	  <A href="filemenu.html#Open" >Open Fonts dialog</A>
	<LI>
	  <A href="oflib.html" >Browsing OFLib dialog</A>
	<LI>
	  <A href="generate.html" >Generate Fonts dialog</A>
	<LI>
	  <A href="generate.html#Mac" >Generate Mac Family dialog</A>
	<LI>
	    <HR>
	<LI>
	  <A href="display.html" >Print &amp; Display dialog</A>
	<LI>
	  <A href="prefs.html" >Preferences dialog</A>
	<LI>
	  <A href="groups.html" >Groups dialog</A>
	<LI>
	    <HR>
	<LI>
	  <A href="elementmenu.html#Bitmaps">Manage Bitmap Strikes</A>
	<LI>
	  <A href="elementmenu.html#Regenerate">Re-Rasterize Bitmap Strikes</A>
	<LI>
	    <HR>
	<LI>
	  <A href="search.html" >Search &amp; Replace dialog</A>
	<LI>
	  <A href="Styles.html" >Style Transformation dialogs</A>
	<LI>
	  <A href="transform.html" >Transformation dialog</A>
	<LI>
	  <A href="elementmenu.html#Expand" >Expand Stroke dialog</A>
	<LI>
	  <A href="tilepath.html" >Tile Path dialog</A>
	<LI>
	  <A href="InsertTextDlg.html" >Insert Text dialog</A>
	<LI>
	    <HR>
	<LI>
	  <A href="metricsmenu.html#Width">Set width dialogs</A>
	<LI>
	  <A href="metricsmenu.html#Width">Set left/right bearings</A>
	<LI>
	  <A href="autowidth.html" >Auto Width &amp; Kern dialogs</A>
	<LI>
	    <HR>
	<LI>
	  <A href="hintsmenu.html#Review" >Review PS Hints dialog</A>
	<LI>
	  <A href="ttfinstrs.html" >TrueType Instruction Editor</A>
	<LI>
	  <A href="ttfinstrs.html#cvt" >TrueType 'cvt ' Editor</A>
	<LI>
	    <HR>
	<LI>
	  <A href="selectbyatt.html" >Select by feature dialog</A>
	<LI>
	  <A href="elementmenu.html#MassRename" >Rename Glyphs dialog</A>
	<LI>
	  <A href="elementmenu.html#CompareFonts" >Compare Fonts dialog</A>
      </UL>
    <LI class="menu">
      <A href="filemenu.html">Menus</A>
      <UL>
	<LI>
	  <A href="filemenu.html" >File</A>
	<LI>
	  <A href="editmenu.html" >Edit</A>
	<LI>
	  <A href="pointmenu.html" >Point</A>
	<LI>
	  <A href="elementmenu.html">Element</A>
	<LI>
	  <A href="toolsmenu.html">Tools</A>
	<LI>
	  <A href="hintsmenu.html" >Hints</A>
	<LI>
	  <A href="encodingmenu.html" >Encoding</A>
	<LI>
	  <A href="viewmenu.html" >View</A>
	<LI>
	  <A href="metricsmenu.html" >Metrics</A>
	<LI>
	  <A href="cidmenu.html" >CID</A>
	<LI>
	  <A href="mmmenu.html" >Multi Master</A>
	<LI>
	  <A href="windowmenu.html" >Window</A>
	<LI>
	  <A href="helpmenu.html" >Help</A>
      </UL>
    <LI>
      <A href="faqFS.html">FAQ</A>
    <LI>
      <A href="IndexFS.html">Index</A>
    <LI>
      <A href="GlossaryFS.html">Glossary</A>
  </UL>
</DIV>
<DIV id="in">
  <H1 ALIGN=Center>
    The Hints Menu
  </H1>
  <P>
  This menu is only present in the outline glyph view and the font view. <BR>
  <A HREF="hinting.html">A more detailed description of the hinting UI</A>.
  <P>
  <UL>
    <LI>
      <A HREF="#AutoHint">AutoHint</A>
    <LI>
      <A HREF="#SubstitutionPt">Hint Substitution Pts</A>
    <LI>
      <A HREF="#Counter">Auto Counter</A>
    <LI>
      <A HREF="hintsmenu.html#DontAutoHint">Don't AutoHint</A>
    <LI>
      <A HREF="#AutoInstr">AutoInstr</A>
    <LI>
      <A HREF="#EditInstrs">Edit Instructions...</A>
    <LI>
      <A HREF="#Debug">Debug...</A>
    <LI>
      <A HREF="#Editfpgm">Edit fpgm...</A>
    <LI>
      <A HREF="#Editprep">Edit prep...</A>
    <LI>
      <A HREF="#Editcvt">Edit cvt...</A>
    <LI>
      <A HREF="#Deltas">Suggest Deltas...</A>
    <LI>
      <A HREF="#RmTables">Remove Instr Tables</A>
    <LI>
      <A HREF="#ClearHints">Clear Hints</A>
    <LI>
      <A HREF="#ClearInstrs">Clear Instructions</A>
    <LI>
      <A HREF="#Clear">Clear HStem</A>
    <LI>
      <A HREF="#ClearV">Clear VStem</A>
    <LI>
      <A HREF="#ClearD">Clear DStem</A>
    <LI>
      <A HREF="#HHint">Add HHint</A>
    <LI>
      <A HREF="#VHint">Add VHint</A>
    <LI>
      <A HREF="#DHint">Add DHint</A>
    <LI>
      <A HREF="#Create">Create HHint</A>
    <LI>
      <A HREF="#CreateV">Create VHint</A>
    <LI>
      <A HREF="#Review">Review Hints</A>
    <LI>
      <A HREF="#Histogram">Histograms</A>
      <UL>
	<LI>
	  <A HREF="hintsmenu.html#HStem-Hist">HStem</A>
	<LI>
	  <A HREF="hintsmenu.html#VStem-Hist">VStem</A>
	<LI>
	  <A HREF="hintsmenu.html#Blue-Hist">BlueValues</A>
      </UL>
  </UL>
  <P>
  <DL>
    <DT>
      <A NAME="AutoHint">AutoHint</A>
    <DD>
      The Auto Hint command causes FontForge to throw away any existing hints for
      the glyph and guess an new ones. In the outline view this operates on the
      current glyph, in the font view it operates on all selected glyphs.<BR>
      FontForge will do a better job hinting a font if you have previously set
      the BlueValues, StdVW and StdHW fields in
      <A HREF="fontinfo.html#Private">Element-&gt;Font Info-&gt;PS Private</A>.
      These in turn depend on the hints so it is best to autohint the entire font,
      then set the above values, and then autohint the font again.
      <P>
      If you wish to use AutoInstr below you should first AutoHint your font with
      <CODE><A HREF="prefs.html#DetectDiagonalStems">File-&gt;Preferences-&gt;PS
      Hints-&gt;Detect Diagonal Stems</A></CODE> enabled.
    <DT>
      Hint <A NAME="SubstitutionPt">Substitution</A> Pts
    <DD>
      In the font view this figures substitution points for all selected glyphs.
      In the outline glyph view, this figures substitution points for the current
      glyph using the current hint set.
    <DT>
      Auto <A NAME="Counter">Counter</A>
    <DD>
      Attempt to figure out counter groups for the selected glyphs (font view)
      or the current glyph (outline glyph view).
    <DT>
      <A NAME="DontAutoHint">Don</A>'t AutoHint
    <DD>
      Tells FontForge not to do any implicit hinting on the selected glyphs. (FontForge
      will normally perform an autohint on a glyph if the glyph's contours have
      changed since it was last hinted and the user has not explicitly changed
      the hints). The user may turn this flag off by invoking AutoHint explicitly.
      <P>
      In the outline glyph view, behavior is a bit more complicated. This command
      will toggle the current setting of the "Don't AutoHint" flag. If the flag
      is currently on the menu entry will be checked.
    <DT>
      <A NAME="AutoInstr">AutoInstr</A>
    <DD>
      The Auto Instr command is only available in quadratic fonts and is used to
      generate truetype instructions. It is designed to produce instructions based
      on PostScript information, so please insure that all glyphs are correctly
      hinted and that the <A HREF="fontinfo.html#Private">PostScript private
      dictionary</A> has been filled in. (I know the instructions aren't used by
      PostScript, but the information needed to generate the instructions is clearly
      expressed in the PostScript data).
      <P>
      If you are using AutoHint to generate hints, please insure that the diagonal
      hint preference item is turned on
      (<CODE><A HREF="prefs.html#DetectDiagonalStems">File-&gt;Preferences-&gt;PS
      Hints-&gt;Detect Diagonal Stems)</A></CODE>
    <DT>
      <A NAME="EditInstrs">Edit Instructions...</A>
    <DD>
      Only available in the outline and font views, and only in quadratic fonts.
      <A HREF="ttfinstrs.html">This dialog</A> shows any truetype instructions
      associated with this glyph, and allows you to edit them.<BR>
      Note there are some glyphs for which you cannot write instructions if they
      contain references that cannot be represented in TrueType. If a glyph contains
      a reference that is scaled by a factor of 2 or more, or if a glyph contains
      both a reference and a contour then you may not generate instructions for
      it. You can either:
      <UL>
	<LI>
	  Unlink all references
	<LI>
	  (in the case of a glyph with references and contours) Place all the contours
	  into a new glyph and make a reference to that glyph. (So the composite glyph
	  will now contain only references).
      </UL>
    <DT>
      <A NAME="Debug">Debug</A>...
    <DD>
      Only available in the outline view, and only if you have linked with a version
      of freetype with the bytecode interpreter and only in quadratic fonts. This
      allows you to <A HREF="charview.html#Debugging">debug truetype programs</A>.
    <DT>
      <A NAME="Editfpgm">Edit fpgm...</A>
    <DD>
      Only available in the font view, and only in quadratic fonts.
      <A HREF="ttfinstrs.html">This dialog</A> shows any truetype instructions
      in the 'fpgm' table, and allows you to edit them.
    <DT>
      <A NAME="Editprep">Edit prep...</A>
    <DD>
      Only available in the font view, and only in quadratic fonts.
      <A HREF="ttfinstrs.html">This dialog</A> shows any truetype instructions
      in the 'prep' table, and allows you to edit them.
    <DT>
      <A NAME="Editcvt">Edit cvt...</A>
    <DD>
      Only available in the font view, and only in quadratic fonts.
      <A HREF="ttfinstrs.html#cvt">This dialog</A> shows the initial values in
      the 'cvt ' table, and allows you to edit them. You can also add a brief comment
      to describe what each entry is used for.
    <DT>
      Suggest <A NAME="Deltas">Deltas</A>...
    <DD>
      Brings up a <A HREF="SuggestDeltas.html">dialog</A> which will help you search
      for places where truetype delta instructions might be useful.
    <DT>
      <A NAME="RmTables">Remove Instr Tables</A>
    <DD>
      If the font contains a 'fpgm', 'prep', 'cvt ' or 'maxp' table, then this
      command will remove them. This should be done in conjunction with
      <A HREF="hintsmenu.html">Hints-&gt;Clear Instructions</A>, otherwise any
      remaining instructed glyphs will fail to work.
    <DT>
      <A NAME="ClearHints">Clear Hints</A>
    <DD>
      Clears all hints in all selected glyphs.
    <DT>
      <A NAME="ClearInstrs">Clear Instructions</A>
    <DD>
      Clears any truetype instructions associated with the selected glyphs.
    <DT>
      <A NAME="Clear">Clear</A> HStem
    <DD>
      Removes all Horizontal Stem hints from the current glyph.
    <DT>
      <A NAME="ClearV">Clear</A> VStem
    <DD>
      Removes all Vertical Stem hints.
    <DT>
      <A NAME="ClearD">Clear</A> DStem
    <DD>
      Removes all Diagonal Stem hints.
    <DT>
      Add <A NAME="HHint">HHint</A>
    <DD>
      If there are two points selected (exactly two) and if they have different
      y positions, then this will create a Horizontal Stem Hint starting at the
      lower one of the two going up to the upper one.
    <DT>
      Add <A NAME="VHint">VHint</A>
    <DD>
      If there are two points selected (exactly two) and if they have different
      x positions, then this will create a Vertical Stem Hint starting at the leftmost
      one of the two going right to the rightmost one.
    <DT>
      Add <A NAME="DHint">DHint</A>
    <DD>
      If there are exactly 4 points selected and they can describe a diagonal stem
      hint then this menu item will be active and will add it.
    <DT>
      <A NAME="Create">Create</A> HHint
    <DD>
      Brings up a dialog allowing you to specify exactly where and how wide you
      want a Horizontal Stem Hint.
    <DT>
      <A NAME="CreateV">Create</A> VHint
    <DD>
      Brings up a dialog allowing you to specify exactly where and how wide you
      want a Vertical Stem Hint.
    <DT>
      <A NAME="Review">Review</A>
      Hints<IMG SRC="ReviewHints.png" WIDTH="383" HEIGHT="410" ALIGN="Right">
    <DD>
      Brings up a dialog allowing you to examine (and modify) all horizontal/vertical
      stem hints (not diagonal). The currently active hint is picked out in either
      dark blue or dark green.
  </DL>
  <P>
  <BR CLEAR=All>
  <H2 ALIGN=Center>
    The <A NAME="Histogram">Histograms</A> SubMenu
  </H2>
  <DL>
    <DT>
      <A NAME="HStem-Hist">HStem</A>
    <DD>
      Brings up a <A HREF="histogram.html">dialog</A> displaying a histogram of
      the horizontal stem widths of all selected glyphs.
    <DT>
      <A NAME="VStem-Hist">VStem</A>
    <DD>
      Brings up a <A HREF="histogram.html">dialog</A> displaying a histogram of
      the vertical stem widths of all selected glyphs.
    <DT>
      <A NAME="Blue-Hist">BlueValues</A>
    <DD>
      Brings up a <A HREF="histogram.html">dialog</A> displaying a histogram of
      the vertical maxima and minima of all selected glyphs.
  </DL>
  <H2>
    Other menus
  </H2>
  <UL>
    <LI>
      <A HREF="filemenu.html">File</A>
    <LI>
      <A HREF="editmenu.html">Edit</A>
    <LI>
      <A HREF="pointmenu.html">Point</A>
    <LI>
      <A HREF="elementmenu.html">Element</A>
    <LI>
      <A href="toolsmenu.html">Tools</A>
    <LI>
      <A HREF="hintsmenu.html">Hints</A>
    <LI>
      <A HREF="encodingmenu.html">Encoding</A>
    <LI>
      <A HREF="viewmenu.html">View</A>
    <LI>
      <A HREF="metricsmenu.html">Metrics</A>
    <LI>
      <A HREF="cidmenu.html">CID</A>
    <LI>
      <A HREF="mmmenu.html">MM</A>
    <LI>
      <A HREF="windowmenu.html">Window</A>
    <LI>
      <A HREF="helpmenu.html">Help</A>
    <LI>
      <A HREF="HotKeys.html">Hot Keys</A>
  </UL>
  <P ALIGN=Center>
  -- <A HREF="toolsmenu.html">Prev</A> -- <A HREF="overview.html">TOC</A> --
  <A HREF="encodingmenu.html">Next</A> --
  <P>
</DIV>
</BODY></HTML>
